package com.boc.ewr.util;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.poi.ss.formula.functions.T;

import java.util.List;

/**
 * @author : Wzz
 * @create : 2023-06- 07- 17:05
 * @desc :
 */
public class PageUtil {

    public static <T> IPage<T> create(List<T> list, int pageNo, int pageSize) {
        if (list == null || list.isEmpty()) {
            return new Page<>(pageNo, pageSize);
        }

        // 计算实际取得记录的起始位置
        int start = Math.min((pageNo - 1) * pageSize, list.size());
        // 计算实际取得记录的结束位置
        int end = Math.min(start + pageSize, list.size());

        // 使用SubList获取指定起始位置和结束位置的集合元素
        List<T> pageData = list.subList(start, end);

        // 创建Page对象，并设置当前页码、每页数据数量和总数据量
        Page<T> page = new Page<>(pageNo, pageSize, list.size());
        page.setRecords(pageData);

        return page;
    }
}
